###############################################################################
#                                                                             #
# Données résultantes de l'analyse d'une partie de la ROM d'une Graph 85 SD   #
#                                                                             #
###############################################################################

Toutes les adresses sont relative au premier octet de la ROM (0x80000000 ou
0xA0000000)

==========================================
A| Analyse de la mémoire
==========================================

---------------------------------
1) Tentative de description du FS
---------------------------------
Le File System commence en 0xA0270000 (vérifié sur G85 OS 1 et G95 OS 2).

Il est composé de trois parties : la première, visiblement très brève, indique le découpage des "pages" mémoire.
La seconde contient la table des fichiers, avec toutes les méta-informations les concernants (nom, taille, position, découpage des fragments...).
La dernière, beaucoup plus grande, contient les fichiers eux-mêmes.


La première partie indique la pagination.
Voici un exemple de cette partie, provenant du dump d'une G95 OS 2, mettant en évidence la répétition d'un motif :
42 00 00 01 00 27 00 00 00 FF 00 01 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF
42 00 00 02 00 28 00 00 00 00 00 0D FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF
42 00 00 03 00 29 00 00 00 00 00 01 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 04 00 2A 00 00 00 00 00 02 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 05 00 2B 00 00 00 00 00 03 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 06 00 2C 00 00 00 00 00 04 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 07 00 2D 00 00 00 00 00 05 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 08 00 2E 00 00 00 00 00 06 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 09 00 2F 00 00 00 00 00 07 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 0A 00 30 00 00 00 00 00 08 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 0B 00 31 00 00 00 00 00 0E FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 0C 00 32 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 0D 00 33 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 0E 00 34 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 0F 00 35 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 10 00 36 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 11 00 37 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 12 00 38 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 13 00 39 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 14 00 3A 00 00 FF FF FF FF FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 15 00 3B 00 00 FF FF FF FF 0F FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 16 00 3C 00 00 00 00 00 0C FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 17 00 3D 00 00 00 00 00 0B FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 18 00 3E 00 00 00 00 00 0A FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF 
42 00 00 19 00 3F 00 00 00 00 00 09 FF FF FF FF 00 00 00 01 FF FF FF FF FF FF FF FF FF FF FF FF

Le motif semble être :
0x4200 [{2b} N° de zone] [{4b} Offset par rapport à 0xA0000000] [{4b} 0xFFFFFFFF si inutilisée, sinon (0x00 [{1b} 0xFF si utilisée par la table des fichiers, 0x00 sinon] [{2b} ID de la zone])]
0xFFFFFFFF00000001FFFFFFFFFFFFFFFFFFFFFFFF


A partir de 0x270329 (2nd partie) :
 [Pré-données de l'index] [Nom du fichier en FONTCHARACTER, maximum (8.3) = 12 caractères, le reste completé par des 0xFF] [Données de l'index]...
Soit :
 [predata][name][file-data] [predata][name][file-data] ...

Toutes les [predata] et [file-data] commencent par 0x51 (ou 0x01 dans le cas d'index supprimé).
Le 2nd octet est 0x10 pour des pré-données de répertoire, 0x20 pour des pré-données de fichier, et 0x30 pour les données de fichier.
Si la pré-donnée indique un répertoire (0x5110 ou 0x0110), alors il n'y a pas de champs [file-data]



---------------------------------
4) Exemple d'index de fichiers
---------------------------------

(les données de nom ont étés volontairement enlevés de l'hexa pour le rendre plus clair)

  NAME.EXT   :  ROM Position  :  Size  :  Hexa des pré-données   :              Hexa des données de l'index
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TCASM_~1.G1A : @(A0 28 00 00) : 23316o : 51 20 00 02 FF FF FF FF : 51 30 00 02 01 20 00 02 00 02 00 01 00 01 00 01 00 00 5B 13 FF FF FF FF FF FF FF FF FF FF FF FF
TCASM.G1A    : @(A0 28 60 00) : 30388o : 51 20 00 01 FF FF FF FF : 51 30 00 01 01 20 00 01 00 02 00 01 00 01 00 01 60 00 76 B3 FF FF FF FF FF FF FF FF FF FF FF FF
GRAY2.G1A    : @(A0 3F 00 00) : 28968o : 51 20 00 03 FF FF FF FF : 51 30 00 03 01 20 00 03 00 02 00 01 00 01 00 02 00 00 71 27 FF FF FF FF FF FF FF FF FF FF FF FF 
GRAY3.G1A    : @(A0 3F 80 00) : 22780o : 51 20 00 04 FF FF FF FF : 51 30 00 04 01 20 00 04 00 02 00 01 00 01 00 02 80 00 58 FB FF FF FF FF FF FF FF FF FF FF FF FF 
ORBIT.G1A    : @(A0 3C 00 00) : 10216o : 51 20 00 06 FF FF FF FF : 51 30 00 06 01 20 00 06 00 02 00 01 00 01 00 03 00 00 27 E7 FF FF FF FF FF FF FF FF FF FF FF FF 
TETRISM.G1A  : @(A0 3C 40 00) :  2480o : 51 20 00 05 FF FF FF FF : 51 30 00 0A 01 20 00 05 00 02 00 01 00 01 00 03 40 00 09 AF FF FF FF FF FF FF FF FF FF FF FF FF 
RPG.G1A      : @(A0 3C 60 00) : 15056o : 51 20 00 08 FF FF FF FF : 51 30 00 05 01 20 00 08 00 02 00 01 00 01 00 03 60 00 3A CF FF FF FF FF FF FF FF FF FF FF FF FF 
BRAINFUC.G1A : @(A0 3C A0 00) : 21860o : 51 20 00 0A FF FF FF FF : 51 30 00 0D 01 20 00 0A 00 02 00 01 00 01 00 03 A0 00 55 63 FF FF FF FF FF FF FF FF FF FF FF FF 
HYPERCUB.G1A : @(A0 3E 00 00) : 12580o : 51 20 00 0B FF FF FF FF : 51 30 00 0E 01 20 00 0B 00 02 00 02 00 01 00 04 00 00 1F FF FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 0F 01 20 00 0B 00 02 00 02 00 02 00 04 20 00 11 23 FF FF FF FF FF FF FF FF FF FF FF FF
(Dir) [BF]   : .............. : ...... : 51 10 00 01 FF FF FF FF :
COMMAND.G1A  : @(A0 3E 40 00) : 45604o : 51 20 00 0C FF FF FF FF : 51 30 00 10 01 20 00 0C 00 02 00 01 00 01 00 04 40 00 B2 23 FF FF FF FF FF FF FF FF FF FF FF FF
MNVSTC.G1A   : @(A0 3D 00 00) :  5752o : 51 20 00 0D FF FF FF FF : 51 30 00 13 01 20 00 0D 00 02 00 01 00 01 00 05 00 00 16 77 FF FF FF FF FF FF FF FF FF FF FF FF 
ORTON.G1A    : @(A0 3D 20 00) : 35948o : 51 20 00 09 FF FF FF FF : 51 30 00 14 01 20 00 09 00 02 00 02 00 01 00 05 20 00 3F FF FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 15 01 20 00 09 00 02 00 02 00 02 00 05 60 00 4C 6B FF FF FF FF FF FF FF FF FF FF FF FF 
HARDGAME.G1A : @(A0 3D C0 00) : 15172o : 51 20 00 0F FF FF FF FF : 51 30 00 24 01 20 00 0F 00 02 00 01 00 01 00 05 C0 00 3B 43 FF FF FF FF FF FF FF FF FF FF FF FF
SAVE-1.CTE   : @(A0 3B 00 00) :  5830o : 51 20 00 0E FF FF FF FF : 51 30 00 07 01 20 00 0E 00 01 00 01 00 01 00 06 00 00 16 C5 FF FF FF FF FF FF FF FF FF FF FF FF
3D.G1A       : @(A0 3B 20 00) : 17012o : 51 20 00 07 FF FF FF FF : 51 30 00 08 01 20 00 07 00 02 00 01 00 01 00 06 20 00 42 73 FF FF FF FF FF FF FF FF FF FF FF FF 
GUI.G1A      : @(A0 3B 80 00) : 23700o : 51 20 00 10 FF FF FF FF : 51 30 00 09 01 20 00 10 00 02 00 02 00 01 00 06 80 00 3F FF FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 0C 01 20 00 10 00 02 00 02 00 02 00 06 C0 00 1C 93 FF FF FF FF FF FF FF FF FF FF FF FF 
EDIT.G1A     : @(A0 39 00 00) : 64724o : 51 20 00 13 FF FF FF FF : 51 30 00 1A 01 20 00 13 00 02 00 01 00 01 00 07 00 00 FC D3 FF FF FF FF FF FF FF FF FF FF FF FF 
BF-DEV.G1A   : @(A0 38 00 00) : 19620o : 51 20 00 11 FF FF FF FF : 51 30 00 29 01 20 00 11 00 02 00 01 00 01 00 08 00 00 4C A3 FF FF FF FF FF FF FF FF FF FF FF FF
STDFILE.G1A  : @(A0 38 60 00) : delete : 01 20 00 00 FF FF FF FF : 51 30 00 0B 01 20 00 12 00 02 00 01 00 01 00 08 60 00 0C FD FF FF FF FF FF FF FF FF FF FF FF FF
STDFILE.G1A  : @(A0 38 80 00) : delete : 01 20 00 00 FF FF FF FF : 51 30 00 11 01 20 00 12 00 02 00 01 00 01 00 08 80 00 0D 05 FF FF FF FF FF FF FF FF FF FF FF FF
STDFILE.G1A  : @(A0 38 A0 00) :  3432o : 51 20 00 12 FF FF FF FF : 51 30 00 12 01 20 00 12 00 02 00 01 00 01 00 08 A0 00 0D 67 FF FF FF FF FF FF FF FF FF FF FF FF 
#### [BF] ####
COPYING      : @(A0 38 AD 70) : 18693o : 51 20 00 14 01 10 00 01 : 51 30 00 16 01 20 00 14 00 01 00 01 00 01 00 08 AD 70 49 04 FF FF FF FF FF FF FF FF FF FF FF FF 
CREDITS      : @(A0 38 F6 80) : 94031o : 51 20 00 15 01 10 00 01 : 51 30 00 17 01 20 00 15 00 01 00 03 00 01 00 08 F6 80 09 7F FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 18 01 20 00 15 00 01 00 03 00 02 00 09 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 19 01 20 00 15 00 01 00 03 00 03 00 0A 00 00 65 CE FF FF FF FF FF FF FF FF FF FF FF FF
KBUILD       :                :  2440o : 51 20 00 16 01 10 00 01 : 51 30 00 1B 01 20 00 16 00 01 00 01 00 01 00 0A 65 D0 09 87 FF FF FF FF FF FF FF FF FF FF FF FF 
MAINTA~1     :                :164165o : 51 20 00 17 01 10 00 01 : 51 30 00 1C 01 20 00 17 00 01 00 03 00 01 00 0A 6F 60 90 9F FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 1D 01 20 00 17 00 01 00 03 00 02 00 0B 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 1E 01 20 00 17 00 01 00 03 00 03 00 0C 00 00 F0 A4 FF FF FF FF FF FF FF FF FF FF FF FF
MAKEFILE     :                : 53199o : 51 20 00 18 01 10 00 01 : 51 30 00 1F 01 20 00 18 00 01 00 02 00 01 00 0C F0 B0 0F 4F FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 20 01 20 00 18 00 01 00 02 00 02 00 0D 00 00 C0 7E FF FF FF FF FF FF FF FF FF FF FF FF
README       :                : 17459o : 51 20 00 19 01 10 00 01 : 51 30 00 21 01 20 00 19 00 01 00 02 00 01 00 0D C0 80 3F 7F FF FF FF FF FF FF FF FF FF FF FF FF 51 30 00 22 01 20 00 19 00 01 00 02 00 02 00 0E 00 00 04 B2 FF FF FF FF FF FF FF FF FF FF FF FF 
REPORT~1     :                :  3371o : 51 20 00 1A 01 10 00 01 : 51 30 00 23 01 20 00 1A 00 01 00 01 00 01 00 0E 04 C0 0D 2A FF FF FF FF FF FF FF FF FF FF FF FF 
TAGS         :                :   332o : 51 20 00 1B 01 10 00 01 : 51 30 00 25 01 20 00 1B 00 01 00 01 00 01 00 0E 11 F0 01 4B FF FF FF FF FF FF FF FF FF FF FF FF



